import { defineStore } from 'pinia';

// 加密处理
import { aseEncryptParams } from '@/utils/crypto';
// import {getInfo} from '@/apis/user'

//定义用户状态管理
const useStore = defineStore('useStore', {
  // 推荐使用 完整类型推断的箭头函数
  state: () => {
    return {
      // 所有这些属性都将自动推断其类型
      uS: {}, //用户信息
      tk: '', //token
      gh: 'jkdfhgdfuj'
    };
  },

  getters: {
    userInfo:(state)=>{
      console.log('state.uS',state.uS);
       return state.uS=={};
    }
  },

  actions: {
    // 登录成功修改用户状态token
    // 设置token
    logonSet() {
      let _this = this;
      return new Promise((reo, rej) => {
        try {
          _this.tk = 'dngjdfbgjbdfgkjfijg';
          reo('ok');
        } catch {
          rej('nook');
        }
      });
    },

    // 获取用户信息
    getUserInfo() {
      return new Promise((reo, rej) => {
        try {
          let obj = {
            name: 'ax',
            age: 20,
            role: ['admin', 'edit']
          };
          this.uS = aseEncryptParams(JSON.stringify(obj));
          reo('ok');
        } catch (error) {
          rej(error);
        }
      });
    }
  },
  persist: {
    key: 'userInfo',
    paths: ['uS', 'tk'],
    storage: localStorage
  }
});

export { useStore };
